﻿using DoNet.Wechat.MP.Enums;

namespace DoNet.Wechat.MP.Menu.Entitys
{
    /// <summary>
    /// 获取官网自定义菜单 图文
    /// </summary>
    public class SingleNewsButton : SingleButton
    {
        /// <summary>
        /// 对于不同的菜单类型，value的值意义不同。
        /// 官网上设置的自定义菜单： Text:保存文字到value； Img、voice：保存mediaID到value； Video：保存视频下载链接到value； News：保存图文消息到news_info，同时保存mediaID到value。 
        /// 使用API设置的自定义菜单： click、scancode_push、scancode_waitmsg、pic_sysphoto、pic_photo_or_album、 pic_weixin、location_select：保存值到key；view：保存链接到url
        /// </summary>
        public string value { get; set; } = string.Empty;
        /// <summary>
        /// 图文消息的信息
        /// </summary>
        public NewsInfo news_info { get; set; } = new NewsInfo();
        /// <summary>
        /// 
        /// </summary>
        public SingleNewsButton() : base(MenuButtonType.news.ToString())
        {
        }
    }
    /// <summary>
    /// 
    /// </summary>
    public class NewsInfo
    {
        /// <summary>
        /// 图文消息的信息列表
        /// </summary>
        public List<NewsInfoItem> list { get; set; } = new List<NewsInfoItem>();
    }
    /// <summary>
    /// 
    /// </summary>
    public class NewsInfoItem
    {
        /// <summary>
        /// 图文消息的标题
        /// </summary>
        public string title { get; set; } = string.Empty;
        /// <summary>
        /// 作者
        /// </summary>
        public string author { get; set; } = string.Empty;
        /// <summary>
        /// 摘要
        /// </summary>
        public string digest { get; set; } = string.Empty;
        /// <summary>
        /// 是否显示封面，0为不显示，1为显示
        /// </summary>
        public int show_cover { get; set; }
        /// <summary>
        /// 封面图片的URL
        /// </summary>
        public string cover_url { get; set; } = string.Empty;
        /// <summary>
        /// 正文的URL
        /// </summary>
        public string content_url { get; set; } = string.Empty;
        /// <summary>
        /// 原文的URL，若置空则无查看原文入口
        /// </summary>
        public string source_url { get; set; } = string.Empty;
    }
}
